Git Stash

Learn how to temporarily save your changes with Git stash

छिपाने के लिए महत्वपूर्ण आदेश

git stash

अपने परिवर्तन छिपाएँ

git stash push -m "message"

एक संदेश के साथ छिपाएँ

git stash list

सभी छिपावों की सूची बनाएं

git stash branch <branchname>

एक भंडार से एक शाखा बनाने के लिए

गिट स्टैश क्या है? इसका उपयोग क्यों करें?

कभी-कभी आपको कार्यों को तुरंत बदलने या बग को ठीक करने की आवश्यकता होती है, लेकिन आप अपने काम के प्रति प्रतिबद्ध होने के लिए तैयार नहीं होते हैं।

git stash .

आप बाद में वापस आ सकते हैं और अपने परिवर्तन पुनर्स्थापित कर सकते हैं।

💼सामान्य उपयोग के मामले:

  • शाखाएँ सुरक्षित रूप से बदलें:शाखाएं बदलने से पहले अपना काम बचा लें
  • आपातकालीन स्थिति संभालें:किसी जरूरी चीज़ को ठीक करने और बाद में उसे पुनः प्राप्त करने के लिए अपना काम छिपाकर रखें
  • अपने प्रगतिरत कार्य को सुरक्षित रखें:अव्यवस्थित प्रतिबद्धताओं या परिवर्तन खोने से बचें

अपने परिवर्तन छिपाएँ (git stash)

अपने वर्तमान परिवर्तन सहेजें (चरणबद्ध और अचरणबद्ध दोनों ट्रैक की गई फ़ाइलें):

उदाहरण: अपना काम छिपाएँ

git stash
Saved working directory and index state WIP on main: 1234567 Add new feature

क्या छुपाया गया है?

  • ट्रैक की गई फ़ाइलें(मंचित और गैर-मंचित दोनों) डिफ़ॉल्ट रूप से संग्रहीत होते हैं
  • ट्रैक न की गई फ़ाइलें(नई फ़ाइलें अभी तक Git में नहीं जोड़ी गई हैं) डिफ़ॉल्ट रूप से संग्रहीत नहीं हैं
  • अनट्रैक की गई फ़ाइलों को भी छिपाएँ,git stash -u(या--include-untracked) और उपयोग करें

यह कमांड आपके परिवर्तनों को सहेजता है और आपकी कार्यशील निर्देशिका को साफ़ करता है ताकि आप कार्यों या शाखाओं को सुरक्षित रूप से बदल सकें।

आपके परिवर्तन अब एक स्टैक में संग्रहीत हैं।

Stash Stack क्या हैं?

ढेर की अवधारणा

हर बार जब आप गिट स्टैश चलाते हैं, तो आपके परिवर्तन "स्टैक" के शीर्ष पर संग्रहीत होते हैं।

सबसे हालिया स्टैश शीर्ष पर है, और आप स्टैश को ऊपर से नीचे तक लागू या हटा सकते हैं, या सूची से एक विशिष्ट स्टैश का चयन कर सकते हैं।

कार्य फ़ोल्डर साफ़ करें

आपका कार्य फ़ोल्डर साफ़ है और आप शाखाएँ बदल सकते हैं या अपडेट खींच सकते हैं

संदेश के साथ स्टैश (git स्टैश पुश -एम)

आपने क्या संग्रहीत किया है यह याद रखने के लिए एक संदेश जोड़ें:

उदाहरण: संदेश के साथ छिपाएँ

git stash push -m "WIP: homepage redesign"
Saved working directory and index state On main: WIP: homepage redesign

नोट:

यह कमांड आपको अपने स्टैश में एक वर्णनात्मक संदेश जोड़ने की अनुमति देता है ताकि आप याद रख सकें कि आप क्या काम कर रहे थे।

सभी भंडारों की सूची बनाएं (git stash सूची)

अपने सभी सहेजे गए भंडार देखें:

उदाहरण: सूची छिपाने की जगहें

git stash list
stash@{0}: On main: WIP: homepage redesign
stash@{1}: WIP on main: 1234567 Add new feature

यह कमांड आपके द्वारा अब तक सहेजे गए सभी स्टैश को उनके नाम और संदेशों के साथ प्रदर्शित करता है।

स्टैश विवरण दिखाएं (गिट स्टैश शो)

देखें नवीनतम स्टैश में क्या परिवर्तन हुआ है:

उदाहरण: नवीनतम स्टैश दिखाएँ

git stash show
 src/index.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

यह कमांड आपको इस बात का सारांश देता है कि आपके सबसे हालिया स्टैश में कौन सी फ़ाइलें और परिवर्तन हैं।

पूरा अंतर देखने के लिए:

उदाहरण: पूर्ण अंतर प्रदर्शित करें

git stash show -p
diff --git a/src/index.html b/src/index.html
index 1234567..89abcde 100644
--- a/src/index.html
+++ b/src/index.html
@@ ...

यह कमांड बिल्कुल दिखाता है कि आपके सबसे हालिया स्टैश में कौन सी लाइनें बदली गईं।

नवीनतम स्टैश का उपयोग करें (गिट स्टैश लागू)

अपने सबसे हाल ही में संग्रहीत परिवर्तन पुनर्प्राप्त करें (स्टैक पर स्टैश रखते हुए):

उदाहरण: नवीनतम स्टैश का उपयोग करें

git stash apply
On branch main
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git restore ..." to discard changes in working directory)
    modified:   src/index.html

नोट:

यह आदेश आपके सबसे हाल ही में संग्रहीत परिवर्तनों को पुनर्स्थापित करता है, लेकिन उस भंडार को एक सूची में रखता है ताकि जरूरत पड़ने पर आप इसका पुन: उपयोग कर सकें।

निर्दिष्ट स्टैश लागू करें (git stash apply stash@{n})

सूची से एक विशिष्ट भंडार पुनर्प्राप्त करें:

उदाहरण: विशिष्ट स्टैश का उपयोग करें

git stash apply stash@{1}
On branch main
Changes not staged for commit:
    modified:   src/index.html

यह कमांड आपको अपनी सूची से एक विशिष्ट स्टैश पुनर्प्राप्त करने की अनुमति देता है, न कि केवल सबसे हालिया।

पॉप द स्टैश (गिट स्टैश पॉप)

नवीनतम स्टैश का उपयोग करें और इसे स्टैक से हटा दें:

उदाहरण: स्टैश को पॉप करें

git stash pop
On branch main
Changes not staged for commit:
    modified:   src/index.html
Dropped refs/stash@{0} (abc1234d5678)

यह कमांड आपके सबसे हालिया स्टैश को पुनर्स्थापित करता है और साथ ही उसे सूची से हटा देता है।

गिट स्टैश ड्रॉप

जब आपको किसी विशेष भंडार की आवश्यकता न हो तो उसे हटा दें:

उदाहरण: स्टैश ड्रॉप करें

git stash drop stash@{0}
Dropped stash@{0} (abc1234d5678)

यह आदेश आपकी सूची से एक विशेष भंडार को तब हटा देता है जब आपको इसकी आवश्यकता नहीं रह जाती है।

सभी स्टैश साफ़ करें (गिट स्टैश साफ़ करें)

एक ही बार में अपने सभी संग्रह हटाएँ:

उदाहरण: सभी स्टैश साफ़ करें

git stash clear

⚠️ चेतावनी:

यह कमांड आपके सभी स्टैश को एक ही बार में हटा देता है। ध्यान से! यह अपरिवर्तनीय है!

स्टैश से शाखा बनाएं (गिट स्टैश शाखा)

एक नई शाखा बनाएं और उसमें एक स्टैश आवंटित करें।

उपयोगी यदि आप निर्णय लेते हैं कि आप चाहते हैं कि आपका संग्रहीत कार्य अपनी स्वयं की फीचर शाखा बन जाए:

उदाहरण: स्टैश से शाखा बनाएँ

git stash branch new-feature stash@{0}
Switched to a new branch 'new-feature'
On branch new-feature
Changes not staged for commit:
    modified:   src/index.html
Dropped stash@{0} (abc1234d5678)

यह आदेश एक नई शाखा बनाता है और उसमें आपके संग्रहीत परिवर्तन लागू करता है।

यह उपयोगी है यदि आप निर्णय लेते हैं कि आपके कार्य को अपनी स्वयं की फीचर शाखा बनना चाहिए।

भंडारण के लिए सर्वोत्तम अभ्यास

🌟सिफ़ारिशें:

  • भंडारण करते समय स्पष्ट संदेशों का उपयोग करें:git stash push -m "WIP: feature name"
  • लंबे समय तक भंडारण के रूप में भंडारण का उपयोग न करें - यदि संभव हो तो अपना काम करें
  • अपनी भंडार सूची की नियमित रूप से जाँच करें और पुराने भंडारों को साफ़ करें जिनकी अब आपको आवश्यकता नहीं है

समस्या समाधान

आपके परिवर्तन खो गए?

समाधान:रुके हुए काम को बहाल करने के लिएgit stash listऔरgit stash applyइसे अजमाएं

क्या स्टैश साफ-सुथरा नहीं लगता?

समाधान:आपको मर्ज जैसे विवादों को हल करने की आवश्यकता हो सकती है

Git आपकी फ़ाइलों में विवादों को हल करने के लिए चिह्नित करता है

ट्रैक न की गई फ़ाइलें गुम हैं?

समाधान:डिफ़ॉल्ट रूप से, अनट्रैक की गई फ़ाइलें संग्रहीत नहीं की जाती हैं

यदि आप उन्हें छिपाना चाहते हैं, तो अगली विधिgit stash -uउपयोग

गलती से सारी चोरी साफ़ कर दी?

समाधान:दुर्भाग्य से,git stash clearस्थायी

इसे चलाने से पहले हमेशा दोबारा जांच लें!

नोट:

स्टैश अस्थायी काम के लिए उपयोगी हैं, लेकिन कमिट के विकल्प के रूप में नहीं!

सारांश

आपने अभी क्या सीखा:

  • Git stash
  • परिवर्तनों को कैसे छिपाएँ
  • गुप्त वस्तुओं की सूची कैसे बनाएं और उनका विवरण कैसे देखें
  • स्टैश कैसे लगाएं, पॉप करें और हटाएं
  • Stash से नई ब्रांच कैसे बनाएं
  • भंडारण के लिए सर्वोत्तम अभ्यास
  • सामान्य स्टैश समस्याओं को कैसे ठीक करें

आगे क्या होगा?

अब आप जानते हैं कि अस्थायी परिवर्तनों को कैसे छिपाया जाए! अगले पाठ में, हम सीखेंगे कि आपके Git इतिहास का पता कैसे लगाया जाए।